﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WomanMotion.WebApi.Infrastructure.Ioc;
using WomanMotion.WebApi.Model.Dtos.Role;
using WomanMotion.WebApi.Model.Entitys;

namespace WomanMotion.WebApi.Repository.IRepository
{
    public interface IRoleRepository : IBaseRepository<Role>, ITransientDependency
    {
        /// <summary>
        /// 添加角色，因为涉及到添加权限，所以使用事务(异步)
        /// </summary>
        /// <param name="dto">dto</param>
        /// <param name="userid">用户id</param>
        /// <returns></returns>
        Task<RoleVM> InsertAsync(CreatedRoleDTO dto, long userid);

        /// <summary>
        /// 更新角色，因为涉及到添加权限，所以使用事务(异步)
        /// </summary>
        /// <param name="dto">dto</param>
        /// <param name="userid">用户id</param>
        /// <returns></returns>
        Task<RoleVM> UpdateAsync(UpdateRoleDTO dto, long userid);
    }
}